package com.xjh.jparepository;

import com.xjh.po.AclUserPO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.List;

@Repository
public interface AclUserRepository extends JpaRepository<AclUserPO, Long> {//第一个参数为实体、第二个参数为主键类型

    // 1.根据命名规则查询：根据username查询
    List<AclUserPO> findAllByUsername(String str);

    // 2.使用JPQL的方式查询:注意参数为实体类和属性，与表和字段无关
    @Query("select u from AclUserPO u where u.username='xjh'")
    List<AclUserPO> findUsers();

    // 3. 使用原生sql查询
    //如果是修改数据 一定加上@Modifying 注解
    @Transactional
    @Query(value = "select count(*) from acl_user where acl_user.username=?1", nativeQuery = true)
    int findAllByUsernameNativeQuery(String username);

    // 多表连接==插入：
}
